package practice4;

import java.util.Arrays;
import java.util.Scanner;

/**
 * 小蓝老师教的编程课有 N 名学生，编号依次是 1 . . . N。第 i 号学生这学期刷题的数量是 Ai。
 * 对于每一名学生，请你计算他至少还要再刷多少道题，才能使得全班刷题比他多的学生数不超过刷题比他少的学生数。
 */
public class P2673 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int[] a=new int[n+1];
        int[] sort=new int[n+1];
        for(int i=1;i<=n;i++){
            a[i]=sc.nextInt();
            sort[i]=a[i];
        }
        Arrays.sort(sort);
        int mid = sort[n/2+1];
        //求比mid大的数和比mid小的数
        int right=0;
        int left=0;
        for(int i=1;i<=n;i++){
            if(sort[i]>mid){
                right++;
            }else if(sort[i]<mid){
                left++;
            }
        }
        if(right<left){
            //比mid大的比比mid小的更少,比mid小的数成mid即可
            for(int i=1;i<=n;i++){
                if(a[i]>=mid){
                    System.out.print(0+" ");
                }else {
                    System.out.print(mid-a[i]+" ");
                }
            }
        }else{
            //比mid大的数大于等于比mid小的数,比mid小的数要超越mid
            for(int i=1;i<=n;i++){
                if(a[i]>mid){
                    System.out.print(0+" ");
                }else if(a[i]==mid){
                    //两边相等时,等于mid的数不需要变
                    //右边更大时,等于mid的数需要超越mid
                    if(left==right){
                        System.out.print(0+" ");
                    }else{
                        System.out.print(1+" ");
                    }
                }else{
                    System.out.print(mid-a[i]+1+" ");
                }
            }
        }
    }
}
